Circular List
In circular List the insertion is possible even the end of the list is reached and empty positions are left in the beginning of the list.
class cq{
int rear;
int counter;
int front;
String[] data;
public cq(){
counter = 0;
front = 0;
rear = -1;
data = new String[5];
}
public void insert(String o){
if(rear < counter){
rear = (rear+1)%5;
data[rear] = o;
++counter;
}
}
public void remove(){
if(counter !=0){
System.out.println("Removed Item: "+data[front]);
front = (front+1)%5;
--counter;
}
}
public void show(){
int i=front;
do{
System.out.println("Data at "+i
+" is: "+data[i]);
i=(i+1)%5;
}while(i!=rear);
}
public static void main(String[] aargs){
cq c = new cq();
c.insert("chair");
c.insert("bench");
c.insert("desk");
c.show();
c.insert("sofa");
c.insert("Dinosaur");
c.insert("tea table");
c.show();
}
}
Output:
Data at 0 is: chair
Data at 1 is: bench
Data at 0 is: tea table
Data at 1 is: bench
Data at 2 is: desk
Data at 3 is: sofa
Data at 4 is: Dinosaur